"""
@name : 11-进程池
@author : wenyao
@projectname: xsfh
"""
from multiprocessing import Pool, current_process
import time

lst = []
def task(i):
    print(current_process().name, i, 'start.....')
    time.sleep(2)
    lst.append(i)
    print(lst)
    print(current_process().name,i ,"end.....")

if __name__ == "__main__":
    # p_lst = []
    # for i in range(4):
    #     p = Process(target=task, args=(i,))
    #     p_lst.append(p)
    #     p.start()

    #创建一个进程池， 建议进程数和cpu核数一致
    p = Pool(processes=4, maxtasksperchild=3)
    for i in range(20):
        #进程池接收任务
        p.apply_async(func = task,args=(i,))
    #关闭进程池， 不接收任务
    p.close()

    #等待子进程执行完毕，父进程再运行
    p.join()
    print("end.........")

#阻塞 非阻塞  同步  异步
#linux下的5种io模型

